package startupweekend201311.recipe4u;

import java.util.List;

import startupweekend201311.recipe4u.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

/**
 * リストデータのバインド用
 */
class BindData {
	String title;// タイトル

	public BindData(String text) {
		this.title = text;
	}
}

/**
 * ViewHolder
 */
class ViewHolder {
	TextView textView;
}

/**
 * Navigation Drawer用のアダプター
 * (ViewHolderを使ってリスト描画を高速化)
 */
public class NaviDrawerAdapter extends ArrayAdapter<BindData> {
	private LayoutInflater inflater;

	public NaviDrawerAdapter(Context context, List<BindData> objects) {
		super(context, 0, objects);
		this.inflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	}

	/**
	 * 表示するリストを取得する
	 */
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder holder;
		// 渡されたViewがnullの場合は新しく生成する
		if (convertView == null) {
			convertView = inflater.inflate(R.layout.drawer_list_item, 
					parent, false);
			holder = new ViewHolder();
			holder.textView = (TextView) convertView.findViewById(R.id.title);
			convertView.setTag(holder);
		} else {
			holder = (ViewHolder) convertView.getTag();
		}
		BindData data = getItem(position);
		holder.textView.setText(data.title);
		return convertView;
	}
}